package com.wanxi.service.Impl;

import com.wanxi.dao.ImageDao;
import com.wanxi.dao.Impl.ImageDaoImpl;
import com.wanxi.dto.ResultDTO;
import com.wanxi.model.Image;
import com.wanxi.model.Teacher;
import com.wanxi.service.ImageService;
import com.wanxi.util.JSONCopy;
import com.wanxi.vo.ImageVO;
import com.wanxi.vo.TeacherVO;

import java.util.Iterator;
import java.util.List;

public class ImageServiceImpl implements ImageService {
    ImageDao imageDao=new ImageDaoImpl();
    @Override
    public ResultDTO findAllImage() {
        List<Image> list=imageDao.findAllImage();
        if(list.size()>0){
            return ResultDTO.getDTO(list.size(),list);
        }
        return ResultDTO.builder().data(list).msg("no data").count(0).code(1).build();
    }

    @Override
    public ResultDTO findImageById(ImageVO imageVO) {
        Image image= JSONCopy.copy(imageVO, Image.class);
        Image img=imageDao.findImageById(image);
        if(img!=null){
            return ResultDTO.getDTO(1,img);
        }
        return ResultDTO.builder().count(0).msg("error").code(1).build();
    }

    @Override
    public ResultDTO updateEnable(ImageVO imageVO) {
        Image image= JSONCopy.copy(imageVO, Image.class);
        int i=imageDao.updateEnable(image);
        if(i==1){
            return ResultDTO.getDTO(i,imageVO);
        }
        return ResultDTO.builder().data(imageVO).count(0).code(1).msg("error").build();
    }

    @Override
    public ResultDTO addTeacher(ImageVO imageVO) {
        Image image=JSONCopy.copy(imageVO,Image.class);
        int i=imageDao.addImage(image);
        if(i==1){
            return ResultDTO.getDTO(i,imageVO);
        }
        return ResultDTO.builder().code(1).count(0).msg("error").data(imageVO).build();
    }

    @Override
    public ResultDTO deleteImage(ImageVO imageVO) {
        Image image=JSONCopy.copy(imageVO,Image.class);
        int i=imageDao.deleteImage(image);
        if(i==1){
            return ResultDTO.getDTO(i,imageVO);
        }
        return ResultDTO.builder().code(1).count(0).msg("error").data(imageVO).build();
    }

    @Override
    public ResultDTO update(ImageVO imageVO) {
        Image image=JSONCopy.copy(imageVO,Image.class);
        int i=imageDao.update(image);
        if(i==1){
            return ResultDTO.getDTO(i,imageVO);
        }
        return ResultDTO.builder().code(1).count(0).msg("error").data(imageVO).build();
    }

    @Override
    public ResultDTO findImage() {
        List<Image> list=imageDao.findAllImage();
        if(list.size()>0){
            Iterator<Image> iterator=list.iterator();
            while(iterator.hasNext()){
                Image i=iterator.next();
                if(i.getEnable()==0)
                    iterator.remove();
            }
            return ResultDTO.getDTO(list.size(),list);
        }
        return ResultDTO.builder().data(list).msg("no data").count(0).code(1).build();
    }
}
